home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Programming Languages Suite
/
ProgLangD.iso
/
Foxpro 2.6 {Windows}
/
APPSRCH.PR_
/
APPSRCH.bin
Wrap
Text File
|
1994-03-10
|
38KB
|
1,144 lines
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ 02/09/94 APPSRCH.SPR 22:22:31 ║
* ║ ║
* ╟─────────────────────────────────────────────────────────╢
* ║ ║
* ║ Author's Name ║
* ║ ║
* ║ Copyright (c) 1994 Company Name ║
* ║ Address ║
* ║ City, Zip ║
* ║ ║
* ║ Description: ║
* ║ This program was automatically generated by GENSCRN. ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
DO CASE
CASE _DOS OR _UNIX && no UNIX records in screen
#REGION 0
REGIONAL m.currarea, m.talkstat, m.compstat
IF SET("TALK") = "ON"
SET TALK OFF
m.talkstat = "ON"
ELSE
m.talkstat = "OFF"
ENDIF
m.compstat = SET("COMPATIBLE")
SET COMPATIBLE FOXPLUS
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ MS-DOS Window definitions ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
IF NOT WEXIST("_qne1byi4x")
DEFINE WINDOW _qne1byi4x ;
FROM INT((SROW()-7)/2),INT((SCOL()-55)/2) ;
TO INT((SROW()-7)/2)+6,INT((SCOL()-55)/2)+54 ;
TITLE " Search for: " ;
FLOAT ;
NOCLOSE ;
SHADOW ;
NOMINIMIZE ;
DOUBLE ;
COLOR SCHEME 5
ENDIF
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ APPSRCH/MS-DOS Setup Code - SECTION 2 ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
#REGION 1
IF TYPE("srchterm") $ "UL" OR EMPTY(m.srchterm)
m.srchterm = SPACE(60)
ENDIF
m.oksrch = 1
m.fldnum = 0
DIMENSION fldarry(10,4) && default dimensions. AFIELDS will reset if necessary.
m.fldcnt = AFIELDS(fldarry)
m.startord = ORDER()
m.startalias = ALIAS()
m.curord = ORDER()
IF EMPTY(m.curord)
SET ORDER TO 1
m.curord = ORDER()
ENDIF
FOR i = 1 TO FCOUNT()
IF FIELDS(i) == m.curord
m.fldnum = i
ENDIF
ENDFOR
IF m.fldnum > 0
m.fldname = FIELDS(m.fldnum)
ELSE
SET ORDER TO 1
m.fldnum = 1
m.fldname = FIELDS(1)
ENDIF
skipvar = .T.
curs_stat = (UPPER(SET("CURSOR")) = "ON")
SET CURSOR ON
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ APPSRCH/MS-DOS Screen Layout ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
#REGION 1
IF WVISIBLE("_qne1byi4x")
ACTIVATE WINDOW _qne1byi4x SAME
ELSE
ACTIVATE WINDOW _qne1byi4x NOSHOW
ENDIF
@ 3,2 SAY "In Field:" ;
SIZE 1,9, 0
@ 1,12 GET m.srchterm ;
SIZE 1,26 ;
DEFAULT " " ;
PICTURE "@3S60" ;
WHEN _qne1byj00()
@ 2,12 GET fldnum ;
PICTURE "@^" ;
FROM fldarry ;
SIZE 3,27 ;
DEFAULT 1 ;
VALID _qne1byj3f() ;
COLOR SCHEME 5, 6
@ 1,41 GET oksrch ;
PICTURE "@*VN \!OK;\?Cancel" ;
SIZE 1,10,1 ;
DEFAULT 1 ;
VALID _qne1byj6u()
@ 1,6 SAY "Find:" ;
SIZE 1,5, 0 ;
COLOR N+/W
IF NOT WVISIBLE("_qne1byi4x")
ACTIVATE WINDOW _qne1byi4x
ENDIF
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ MS-DOSREAD contains clauses from SCREEN appsrch ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
READ CYCLE ;
ACTIVATE _qne1byk44() ;
DEACTIVATE _qne1byk48() ;
MODAL
RELEASE WINDOW _qne1byi4x
#REGION 0
IF m.talkstat = "ON"
SET TALK ON
ENDIF
IF m.compstat = "ON"
SET COMPATIBLE ON
ENDIF
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ APPSRCH/MS-DOS Cleanup Code ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
#REGION 1
IF m.curs_stat
SET CURSOR ON
ELSE
SET CURSOR OFF
ENDIF
m.skipvar = .F.
CASE _MAC
#REGION 0
REGIONAL m.currarea, m.talkstat, m.compstat
IF SET("TALK") = "ON"
SET TALK OFF
m.talkstat = "ON"
ELSE
m.talkstat = "OFF"
ENDIF
m.compstat = SET("COMPATIBLE")
SET COMPATIBLE FOXPLUS
m.rborder = SET("READBORDER")
SET READBORDER OFF
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ Macintosh Window definitions ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
IF NOT WEXIST("_qne1bykja")
DEFINE WINDOW _qne1bykja ;
AT 0.000, 0.000 ;
SIZE 5.750,56.500 ;
TITLE " Search for: " ;
FONT "Geneva", 10 ;
FLOAT ;
NOCLOSE ;
SHADOW ;
DOUBLE
MOVE WINDOW _qne1bykja CENTER
ENDIF
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ APPSRCH/Macintosh Setup Code - SECTION 2 ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
#REGION 1
IF TYPE("srchterm") $ "UL" OR EMPTY(m.srchterm)
m.srchterm = SPACE(60)
ENDIF
m.oksrch = 1
m.fldnum = 0
DIMENSION fldarry(10,4) && default dimensions. AFIELDS will reset if necessary.
m.fldcnt = AFIELDS(fldarry)
m.startord = ORDER()
m.startalias = ALIAS()
m.curord = ORDER()
IF EMPTY(m.curord)
SET ORDER TO 1
m.curord = ORDER()
ENDIF
FOR i = 1 TO FCOUNT()
IF FIELDS(i) == m.curord
m.fldnum = i
ENDIF
ENDFOR
IF m.fldnum > 0
m.fldname = FIELDS(m.fldnum)
ELSE
SET ORDER TO 1
m.fldnum = 1
m.fldname = FIELDS(1)
ENDIF
skipvar = .T.
curs_stat = (UPPER(SET("CURSOR")) = "ON")
SET CURSOR ON
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ APPSRCH/Macintosh Screen Layout ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
#REGION 1
IF WVISIBLE("_qne1bykja")
ACTIVATE WINDOW _qne1bykja SAME
ELSE
ACTIVATE WINDOW _qne1bykja NOSHOW
ENDIF
@ 3.500,1.833 SAY "In Field:" ;
FONT "Geneva", 10
@ 1.333,11.500 GET m.srchterm ;
SIZE 1.000,26.333 ;
DEFAULT " " ;
FONT "Geneva", 10 ;
PICTURE "@3S60" ;
WHEN _qne1byl58()
@ 3.250,11.167 GET fldnum ;
PICTURE "@^3" ;
FROM fldarry ;
SIZE 1.500,27.000 ;
DEFAULT 1 ;
FONT "Geneva", 10 ;
VALID _qne1bylal()
@ 1.333,42.333 GET oksrch ;
PICTURE "@*VN3 \!OK;\?Cancel" ;
SIZE 1.500,10.000,0.500 ;
DEFAULT 1 ;
FONT "Geneva", 10 ;
STYLE "B" ;
VALID _qne1bylha()
@ 1.250,1.833 SAY "Find:" ;
FONT "Geneva", 10 ;
STYLE "T" ;
COLOR RGB(0,0,0,255,255,255)
IF NOT WVISIBLE("_qne1bykja")
ACTIVATE WINDOW _qne1bykja
ENDIF
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ MacintoshREAD contains clauses from SCREEN appsrch ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
READ CYCLE ;
ACTIVATE _qne1bylyd() ;
DEACTIVATE _qne1bylyg() ;
MODAL
RELEASE WINDOW _qne1bykja
#REGION 0
SET READBORDER &rborder
IF m.talkstat = "ON"
SET TALK ON
ENDIF
IF m.compstat = "ON"
SET COMPATIBLE ON
ENDIF
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ APPSRCH/Macintosh Cleanup Code ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
#REGION 1
IF m.curs_stat
SET CURSOR ON
ELSE
SET CURSOR OFF
ENDIF
m.skipvar = .F.
CASE _WINDOWS
#REGION 0
REGIONAL m.currarea, m.talkstat, m.compstat
IF SET("TALK") = "ON"
SET TALK OFF
m.talkstat = "ON"
ELSE
m.talkstat = "OFF"
ENDIF
m.compstat = SET("COMPATIBLE")
SET COMPATIBLE FOXPLUS
m.rborder = SET("READBORDER")
SET READBORDER OFF
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ Windows Window definitions ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
IF NOT WEXIST("_qne1bymgx")
DEFINE WINDOW _qne1bymgx ;
AT 0.000, 0.000 ;
SIZE 5.769,56.500 ;
TITLE " Search for: " ;
FONT "MS Sans Serif", 8 ;
STYLE "B" ;
FLOAT ;
NOCLOSE ;
SHADOW ;
NOMINIMIZE ;
DOUBLE ;
COLOR RGB(,,,192,192,192)
MOVE WINDOW _qne1bymgx CENTER
ENDIF
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ APPSRCH/Windows Setup Code - SECTION 2 ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
#REGION 1
IF TYPE("srchterm") $ "UL" OR EMPTY(m.srchterm)
m.srchterm = SPACE(60)
ENDIF
m.oksrch = 1
m.fldnum = 0
DIMENSION fldarry(10,4) && default dimensions. AFIELDS will reset if necessary.
m.fldcnt = AFIELDS(fldarry)
m.startord = ORDER()
m.startalias = ALIAS()
m.curord = ORDER()
IF EMPTY(m.curord)
SET ORDER TO 1
m.curord = ORDER()
ENDIF
FOR i = 1 TO FCOUNT()
IF FIELDS(i) == m.curord
m.fldnum = i
ENDIF
ENDFOR
IF m.fldnum > 0
m.fldname = FIELDS(m.fldnum)
ELSE
SET ORDER TO 1
m.fldnum = 1
m.fldname = FIELDS(1)
ENDIF
skipvar = .T.
curs_stat = (UPPER(SET("CURSOR")) = "ON")
SET CURSOR ON
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ APPSRCH/Windows Screen Layout ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
#REGION 1
IF WVISIBLE("_qne1bymgx")
ACTIVATE WINDOW _qne1bymgx SAME
ELSE
ACTIVATE WINDOW _qne1bymgx NOSHOW
ENDIF
@ 3.462,1.833 SAY "In Field:" ;
FONT "MS Sans Serif", 8 ;
STYLE "B"
@ 1.231,11.500 GET m.srchterm ;
SIZE 1.000,26.333 ;
DEFAULT " " ;
FONT "MS Sans Serif", 8 ;
STYLE "B" ;
PICTURE "@3S60" ;
WHEN _qne1bynbu()
@ 3.154,11.167 GET fldnum ;
PICTURE "@^" ;
FROM fldarry ;
SIZE 1.538,27.000 ;
DEFAULT 1 ;
FONT "MS Sans Serif", 8 ;
VALID _qne1bynea()
@ 1.154,42.333 GET oksrch ;
PICTURE "@*VN \!\<OK;\?\<Cancel" ;
SIZE 1.462,10.000,0.538 ;
DEFAULT 1 ;
FONT "MS Sans Serif", 8 ;
STYLE "B" ;
VALID _qne1bynlf()
@ 1.154,1.833 SAY "Find:" ;
FONT "MS Sans Serif", 8 ;
STYLE "BT" ;
COLOR RGB(0,0,0,255,255,255)
IF NOT WVISIBLE("_qne1bymgx")
ACTIVATE WINDOW _qne1bymgx
ENDIF
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ WindowsREAD contains clauses from SCREEN appsrch ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
READ CYCLE ;
ACTIVATE _qne1byo2l() ;
DEACTIVATE _qne1byo2q() ;
MODAL
RELEASE WINDOW _qne1bymgx
#REGION 0
SET READBORDER &rborder
IF m.talkstat = "ON"
SET TALK ON
ENDIF
IF m.compstat = "ON"
SET COMPATIBLE ON
ENDIF
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ APPSRCH/Windows Cleanup Code ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
#REGION 1
IF m.curs_stat
SET CURSOR ON
ELSE
SET CURSOR OFF
ENDIF
m.skipvar = .F.
ENDCASE
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ _QNE1BYJ00 m.srchterm WHEN ║
* ║ ║
* ║ Function Origin: ║
* ║ ║
* ║ From Platform: MS-DOS ║
* ║ From Screen: APPSRCH, Record Number: 11 ║
* ║ Variable: m.srchterm ║
* ║ Called By: WHEN Clause ║
* ║ Object Type: Field ║
* ║ Snippet Number: 1 ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
FUNCTION _qne1byj00 && m.srchterm WHEN
#REGION 1
m.srchterm = PADR(m.srchterm,60)
SHOW GETS
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ _QNE1BYJ3F fldnum VALID ║
* ║ ║
* ║ Function Origin: ║
* ║ ║
* ║ From Platform: MS-DOS ║
* ║ From Screen: APPSRCH, Record Number: 12 ║
* ║ Variable: fldnum ║
* ║ Called By: VALID Clause ║
* ║ Object Type: Popup ║
* ║ Snippet Number: 2 ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
FUNCTION _qne1byj3f && fldnum VALID
#REGION 1
m.fldname = FIELDS(m.fldnum)
tagnum = gettag(m.fldname) && tag number of tag with name fldname
IF tagnum > 0
SET ORDER TO TAG(m.tagnum)
ELSE
SET ORDER TO 0
ENDIF
SHOW GETS
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ _QNE1BYJ6U oksrch VALID ║
* ║ ║
* ║ Function Origin: ║
* ║ ║
* ║ From Platform: MS-DOS ║
* ║ From Screen: APPSRCH, Record Number: 13 ║
* ║ Variable: oksrch ║
* ║ Called By: VALID Clause ║
* ║ Object Type: Push Button ║
* ║ Snippet Number: 3 ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
FUNCTION _qne1byj6u && oksrch VALID
#REGION 1
skipvar = .F.
IF m.oksrch = 1 AND !EMPTY(m.srchterm)
m.srchterm = ALLTRIM(m.srchterm)
WAIT CLEAR
m.tagnum = gettag(m.fldname)
IF m.tagnum > 0
SET ORDER TO TAG(m.tagnum)
ELSE
DO waitmsg && warn user that this may take a while
ENDIF
m.thisrec = RECNO()
DO CASE
CASE TYPE("&fldname") $ "CM" && character or memo field
IF m.tagnum > 0
SEEK ALLTRIM(m.srchterm)
IF !FOUND()
IF m.thisrec <= RECCOUNT() AND m.thisrec > 0
GOTO m.thisrec
ENDIF
answer = .F.
DO doloc WITH m.srchterm, m.answer && prompt for locate
IF m.answer = .T.
DO waitmsg
GOTO TOP
LOCATE FOR UPPER(m.srchterm) $ UPPER(&fldname)
ENDIF
ENDIF
ELSE
LOCATE FOR UPPER(m.srchterm) $ UPPER(&fldname)
ENDIF
CASE TYPE("&fldname") $ "FN" && floating or numeric
m.srchterm = CHRTRAN(m.srchterm,'"','')
m.srchterm = CHRTRAN(m.srchterm,"'","")
LOCATE FOR VAL(ALLTRIM(m.srchterm)) = &fldname
CASE TYPE("&fldname") = "D" && date
m.srchterm = CHRTRAN(m.srchterm,'{}"()','')
m.srchterm = CHRTRAN(m.srchterm,"'",'')
m.srchterm = ALLTRIM(m.srchterm)
LOCATE FOR CTOD(srchterm) = &fldname
CASE TYPE("&fldname") = "L" && logical
IF "T" $ UPPER(m.srchterm)
LOCATE FOR &fldname
ELSE
LOCATE FOR !&fldname
ENDIF
CASE TYPE("&fldname") = "U" && unknown field type--should't happen
WAIT WINDOW "Field "+m.fldname+" not found"
ENDCASE
IF !FOUND()
SET CURSOR OFF
WAIT WINDOW "Not found" NOWAIT
IF m.thisrec <= RECCOUNT() AND m.thisrec > 0
GOTO m.thisrec
ENDIF
ELSE
SET CURSOR OFF
WAIT WINDOW "Found it!" NOWAIT
CLEAR READ
ENDIF
ELSE
SET ORDER TO (m.startord)
CLEAR READ
ENDIF
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ _QNE1BYK44 Read Level Activate ║
* ║ ║
* ║ Function Origin: ║
* ║ ║
* ║ ║
* ║ From Platform: MS-DOS ║
* ║ From Screen: APPSRCH ║
* ║ Called By: READ Statement ║
* ║ Snippet Number: 4 ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
FUNCTION _qne1byk44 && Read Level Activate
*
* Activate Code from screen: APPSRCH
*
#REGION 1
SELECT (m.startalias)
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ _QNE1BYK48 Read Level Deactivate ║
* ║ ║
* ║ Function Origin: ║
* ║ ║
* ║ ║
* ║ From Platform: MS-DOS ║
* ║ From Screen: APPSRCH ║
* ║ Called By: READ Statement ║
* ║ Snippet Number: 5 ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
FUNCTION _qne1byk48 && Read Level Deactivate
*
* Deactivate Code from screen: APPSRCH
*
#REGION 1
?? CHR(7)
RETURN .F.
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ _QNE1BYL58 m.srchterm WHEN ║
* ║ ║
* ║ Function Origin: ║
* ║ ║
* ║ From Platform: Macintosh ║
* ║ From Screen: APPSRCH, Record Number: 17 ║
* ║ Variable: m.srchterm ║
* ║ Called By: WHEN Clause ║
* ║ Object Type: Field ║
* ║ Snippet Number: 6 ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
FUNCTION _qne1byl58 && m.srchterm WHEN
#REGION 1
m.srchterm = PADR(m.srchterm,60)
SHOW GETS
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ _QNE1BYLAL fldnum VALID ║
* ║ ║
* ║ Function Origin: ║
* ║ ║
* ║ From Platform: Macintosh ║
* ║ From Screen: APPSRCH, Record Number: 18 ║
* ║ Variable: fldnum ║
* ║ Called By: VALID Clause ║
* ║ Object Type: Popup ║
* ║ Snippet Number: 7 ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
FUNCTION _qne1bylal && fldnum VALID
#REGION 1
m.fldname = FIELDS(m.fldnum)
tagnum = gettag(m.fldname) && tag number of tag with name fldname
IF tagnum > 0
SET ORDER TO TAG(m.tagnum)
ELSE
SET ORDER TO 0
ENDIF
SHOW GETS
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ _QNE1BYLHA oksrch VALID ║
* ║ ║
* ║ Function Origin: ║
* ║ ║
* ║ From Platform: Macintosh ║
* ║ From Screen: APPSRCH, Record Number: 19 ║
* ║ Variable: oksrch ║
* ║ Called By: VALID Clause ║
* ║ Object Type: Push Button ║
* ║ Snippet Number: 8 ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
FUNCTION _qne1bylha && oksrch VALID
#REGION 1
skipvar = .F.
IF m.oksrch = 1 AND !EMPTY(m.srchterm)
m.srchterm = ALLTRIM(m.srchterm)
WAIT CLEAR
m.tagnum = gettag(m.fldname)
IF m.tagnum > 0
SET ORDER TO TAG(m.tagnum)
ELSE
DO waitmsg && warn user that this may take a while
ENDIF
m.thisrec = RECNO()
DO CASE
CASE TYPE("&fldname") $ "CM" && character or memo field
IF m.tagnum > 0
SEEK ALLTRIM(m.srchterm)
IF !FOUND()
IF m.thisrec <= RECCOUNT() AND m.thisrec > 0
GOTO m.thisrec
ENDIF
answer = .F.
DO doloc WITH m.srchterm, m.answer && prompt for locate
IF m.answer = .T.
DO waitmsg
GOTO TOP
LOCATE FOR UPPER(m.srchterm) $ UPPER(&fldname)
ENDIF
ENDIF
ELSE
LOCATE FOR UPPER(m.srchterm) $ UPPER(&fldname)
ENDIF
CASE TYPE("&fldname") $ "FN" && floating or numeric
m.srchterm = CHRTRAN(m.srchterm,'"','')
m.srchterm = CHRTRAN(m.srchterm,"'","")
LOCATE FOR VAL(ALLTRIM(m.srchterm)) = &fldname
CASE TYPE("&fldname") = "D" && date
m.srchterm = CHRTRAN(m.srchterm,'{}"()','')
m.srchterm = CHRTRAN(m.srchterm,"'",'')
m.srchterm = ALLTRIM(m.srchterm)
LOCATE FOR CTOD(srchterm) = &fldname
CASE TYPE("&fldname") = "L" && logical
IF "T" $ UPPER(m.srchterm)
LOCATE FOR &fldname
ELSE
LOCATE FOR !&fldname
ENDIF
CASE TYPE("&fldname") = "U" && unknown field type--should't happen
WAIT WINDOW "Field "+m.fldname+" not found"
ENDCASE
IF !FOUND()
SET CURSOR OFF
WAIT WINDOW "Not found" NOWAIT
IF m.thisrec <= RECCOUNT() AND m.thisrec > 0
GOTO m.thisrec
ENDIF
ELSE
SET CURSOR OFF
WAIT WINDOW "Found it!" NOWAIT
CLEAR READ
ENDIF
ELSE
SET ORDER TO (m.startord)
CLEAR READ
ENDIF
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ _QNE1BYLYD Read Level Activate ║
* ║ ║
* ║ Function Origin: ║
* ║ ║
* ║ ║
* ║ From Platform: Macintosh ║
* ║ From Screen: APPSRCH ║
* ║ Called By: READ Statement ║
* ║ Snippet Number: 9 ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
FUNCTION _qne1bylyd && Read Level Activate
*
* Activate Code from screen: APPSRCH
*
#REGION 1
SELECT (m.startalias)
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ _QNE1BYLYG Read Level Deactivate ║
* ║ ║
* ║ Function Origin: ║
* ║ ║
* ║ ║
* ║ From Platform: Macintosh ║
* ║ From Screen: APPSRCH ║
* ║ Called By: READ Statement ║
* ║ Snippet Number: 10 ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
FUNCTION _qne1bylyg && Read Level Deactivate
*
* Deactivate Code from screen: APPSRCH
*
#REGION 1
?? CHR(7)
RETURN .F.
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ _QNE1BYNBU m.srchterm WHEN ║
* ║ ║
* ║ Function Origin: ║
* ║ ║
* ║ From Platform: Windows ║
* ║ From Screen: APPSRCH, Record Number: 3 ║
* ║ Variable: m.srchterm ║
* ║ Called By: WHEN Clause ║
* ║ Object Type: Field ║
* ║ Snippet Number: 11 ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
FUNCTION _qne1bynbu && m.srchterm WHEN
#REGION 1
m.srchterm = PADR(m.srchterm,60)
SHOW GETS
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ _QNE1BYNEA fldnum VALID ║
* ║ ║
* ║ Function Origin: ║
* ║ ║
* ║ From Platform: Windows ║
* ║ From Screen: APPSRCH, Record Number: 4 ║
* ║ Variable: fldnum ║
* ║ Called By: VALID Clause ║
* ║ Object Type: Popup ║
* ║ Snippet Number: 12 ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
FUNCTION _qne1bynea && fldnum VALID
#REGION 1
m.fldname = FIELDS(m.fldnum)
tagnum = gettag(m.fldname) && tag number of tag with name fldname
IF tagnum > 0
SET ORDER TO TAG(m.tagnum)
ELSE
SET ORDER TO 0
ENDIF
SHOW GETS
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ _QNE1BYNLF oksrch VALID ║
* ║ ║
* ║ Function Origin: ║
* ║ ║
* ║ From Platform: Windows ║
* ║ From Screen: APPSRCH, Record Number: 5 ║
* ║ Variable: oksrch ║
* ║ Called By: VALID Clause ║
* ║ Object Type: Push Button ║
* ║ Snippet Number: 13 ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
FUNCTION _qne1bynlf && oksrch VALID
#REGION 1
skipvar = .F.
IF m.oksrch = 1 AND !EMPTY(m.srchterm)
m.srchterm = ALLTRIM(m.srchterm)
WAIT CLEAR
m.tagnum = gettag(m.fldname)
IF m.tagnum > 0
SET ORDER TO TAG(m.tagnum)
ELSE
DO waitmsg && warn user that this may take a while
ENDIF
m.thisrec = RECNO()
DO CASE
CASE TYPE("&fldname") $ "CM" && character or memo field
IF m.tagnum > 0
SEEK ALLTRIM(m.srchterm)
IF !FOUND()
IF m.thisrec <= RECCOUNT() AND m.thisrec > 0
GOTO m.thisrec
ENDIF
answer = .F.
DO doloc WITH m.srchterm, m.answer && prompt for locate
IF m.answer = .T.
DO waitmsg
GOTO TOP
LOCATE FOR UPPER(m.srchterm) $ UPPER(&fldname)
ENDIF
ENDIF
ELSE
LOCATE FOR UPPER(m.srchterm) $ UPPER(&fldname)
ENDIF
CASE TYPE("&fldname") $ "FN" && floating or numeric
m.srchterm = CHRTRAN(m.srchterm,'"','')
m.srchterm = CHRTRAN(m.srchterm,"'","")
LOCATE FOR VAL(ALLTRIM(m.srchterm)) = &fldname
CASE TYPE("&fldname") = "D" && date
m.srchterm = CHRTRAN(m.srchterm,'{}"()','')
m.srchterm = CHRTRAN(m.srchterm,"'",'')
m.srchterm = ALLTRIM(m.srchterm)
LOCATE FOR CTOD(srchterm) = &fldname
CASE TYPE("&fldname") = "L" && logical
IF "T" $ UPPER(m.srchterm)
LOCATE FOR &fldname
ELSE
LOCATE FOR !&fldname
ENDIF
CASE TYPE("&fldname") = "U" && unknown field type--should't happen
WAIT WINDOW "Field "+m.fldname+" not found"
ENDCASE
IF !FOUND()
SET CURSOR OFF
WAIT WINDOW "Not found" NOWAIT
IF m.thisrec <= RECCOUNT() AND m.thisrec > 0
GOTO m.thisrec
ENDIF
ELSE
SET CURSOR OFF
WAIT WINDOW "Found it!" NOWAIT
CLEAR READ
ENDIF
ELSE
SET ORDER TO (m.startord)
CLEAR READ
ENDIF
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ _QNE1BYO2L Read Level Activate ║
* ║ ║
* ║ Function Origin: ║
* ║ ║
* ║ ║
* ║ From Platform: Windows ║
* ║ From Screen: APPSRCH ║
* ║ Called By: READ Statement ║
* ║ Snippet Number: 14 ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
FUNCTION _qne1byo2l && Read Level Activate
*
* Activate Code from screen: APPSRCH
*
#REGION 1
SELECT (m.startalias)
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ _QNE1BYO2Q Read Level Deactivate ║
* ║ ║
* ║ Function Origin: ║
* ║ ║
* ║ ║
* ║ From Platform: Windows ║
* ║ From Screen: APPSRCH ║
* ║ Called By: READ Statement ║
* ║ Snippet Number: 15 ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
FUNCTION _qne1byo2q && Read Level Deactivate
*
* Deactivate Code from screen: APPSRCH
*
#REGION 1
?? CHR(7)
RETURN .F.
* ╓─────────────────────────────────────────────────────────╖
* ║ ║
* ║ APPSRCH/Windows Supporting Procedures and Functions ║
* ║ ║
* ╙─────────────────────────────────────────────────────────╜
*
#REGION 1
FUNCTION gettag
*) Returns tag number corresponding to field "fldname", or 0 if there
*) is not tag with the same name as "fldname."
parameter fldname
PRIVATE ALL
m.fldname = UPPER(ALLTRIM(m.fldname))
m.i = 1
DO WHILE !EMPTY(TAG(m.i)) AND m.i < 1000
IF UPPER(TAG(m.i)) == m.fldname
RETURN m.i
ENDIF
m.i = m.i + 1
ENDDO
RETURN 0
PROCEDURE waitmsg
IF RECCOUNT() > 1000
WAIT WINDOW "Searching. This may take a few moments." NOWAIT
ELSE
WAIT WINDOW "Searching" NOWAIT
ENDIF
PROCEDURE doloc
PARAMETERS term, answer
* See if the user wants to do a long substring search
IF NOT WEXIST("doloc")
IF _MAC
DEFINE WINDOW doloc ;
FROM INT((srow()-9)/2),INT((scol()-63)/2) ;
TO INT((srow()-9)/2)+9,INT((scol()-63)/2)+61 ;
TITLE "Searching Options" ;
FLOAT ;
NOCLOSE ;
SHADOW ;
DOUBLE
ELSE
DEFINE WINDOW doloc ;
FROM INT((srow()-9)/2),INT((scol()-63)/2) ;
TO INT((srow()-9)/2)+9,INT((scol()-63)/2)+61 ;
TITLE "Searching Options" ;
FLOAT ;
NOCLOSE ;
SHADOW ;
DOUBLE ;
COLOR SCHEME 5
ENDIF
ENDIF
answer = .F.
ACTIVATE WINDOW doloc NOSHOW
@ 6,16 GET locok ;
PICTURE "@*HT \!\<Search;\?\<Cancel" ;
SIZE 1.769,12.0,4.0 ;
DEFAULT 1
@ 1,1 SAY "FoxApp was not able to find a record matching your search"
@ 2,1 SAY "term while using a fast searching method. Do you want to"
@ 3,1 SAY "search for the term with slower but more thorough methods?"
IF NOT WVISIBLE("doloc")
ACTIVATE WINDOW doloc
ENDIF
READ CYCLE MODAL
RELEASE WINDOW doloc
answer = (locok = 1)